<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.opengis.net/sld"
            xmlns:sld="http://www.opengis.net/sld"
            xmlns:ogc="http://www.opengis.net/ogc"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            elementFormDefault="qualified">
  <xsd:include schemaLocation="Symbol.xsd"/>
  <xsd:import namespace="http://www.opengis.net/ogc"
              schemaLocation="../../filter/1.0.0/filter.xsd"/>

<!-- *********************************************************************** -->
  <xsd:annotation>
    <xsd:documentation>
      SLD FEATURE STYLE version 0.7.3 (2002-09-21)
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="FeatureStyle">
  <xsd:annotation>
    <xsd:documentation>
      A FeatureStyle contains styling information specific to one
      feature type.  This is the SLD level that separates the 'layer'
      handling from the 'feature' handling.
    </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element ref="sld:Name" minOccurs="0"/>
          <xsd:element ref="sld:Description" minOccurs="0"/>
          <xsd:element ref="sld:FeatureTypeName" minOccurs="0"/>
          <xsd:element ref="sld:SemanticTypeIdentifier" minOccurs="0"
                      maxOccurs="unbounded"/>
          <xsd:element ref="sld:Rule" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:element ref="sld:OnlineResource"/>
      </xsd:choice>
      <xsd:attribute name="version" type="sld:VersionType"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="SemanticTypeIdentifier" type="xsd:string"/>

  <xsd:element name="Rule">
    <xsd:annotation>
      <xsd:documentation>
        A Rule is used to attach property/scale conditions to and group
        the individual symbols used for rendering.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="sld:Name" minOccurs="0"/>
        <xsd:element ref="sld:Description" minOccurs="0"/>
        <xsd:element ref="sld:LegendGraphic" minOccurs="0"/>
        <xsd:choice minOccurs="0">
          <xsd:element ref="ogc:Filter"/>
          <xsd:element ref="sld:ElseFilter"/>
        </xsd:choice>
        <xsd:element ref="sld:MinScaleDenominator" minOccurs="0"/>
        <xsd:element ref="sld:MaxScaleDenominator" minOccurs="0"/>
        <xsd:element ref="sld:Symbol" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="LegendGraphic">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="sld:Graphic"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="ElseFilter">
    <xsd:complexType/>
  </xsd:element>
  <xsd:element name="MinScaleDenominator" type="xsd:double"/>
  <xsd:element name="MaxScaleDenominator" type="xsd:double"/>

</xsd:schema>
